[HN Gopher] Show HN: I spent 2 years building Tablane as a 17-ye...
       ___________________________________________________________________
        
       Show HN: I spent 2 years building Tablane as a 17-year-old
        
       Hi HN community,  I'm Marcus, a 17-year-old Software Engineer from
       Germany.  For the past two years I've been working on Tablane
       [0](https://github.com/Tablane/tablane) a task/project management
       tool, with features like:  - Collaborative Editing (google docs)  -
       Optimistic updates with RTK Query  - Realtime sync with Socket.io
       - An awesome design  Let me know what you think! Ask me anything!
       How I got here: 2020: I was developing a TTT [1] (Trouble in
       Terrorist Town) plugin for my minecraft server, when I started to
       require a project management tool to keep track of the features I
       wanted to implement, originally I used a text file, but after some
       time I started using products like ClickUp and Monday.  But not
       long after I hit several paywalls for features that I wanted to use
       (Custom Status, Limited Number of Boards, ...) Soon after Tablane
       (originally task-board) was born. I started building the website
       using plain HTML, then found out about React and completed Colt
       Steele's "Web Developer Bootcamp" [2] and "The Modern React
       Bootcamp" [3] and started re-writing Tablane in React, and started
       adding feature after feature.  Now I am about to finish Highschool
       and originally I thought about applying to college and spending
       another 3-5 years there, but after the positive feedback I got on a
       three month internship I did at ContentPepper, and seeing how my
       own projects developed, I decided to look for open Developer
       positions, to work with a team of experienced developers so I can
       learn even faster.  Links:  [0] https://tablane.net  [1]
       https://github.com/MarconLP/TTT  [2]
       https://www.udemy.com/course/modern-react-bootcamp/  [3]
       https://www.udemy.com/course/the-web-developer-bootcamp/  Socials:
       Resume/CV: https://drive.google.com/file/d/1CbZi1Bm-
       MlDHEb4WjsFBzIBSomJ...  LinkedIn:
       https://www.linkedin.com/in/marcus-hof/  Email: marcus (dot) hof
       (at) protonmail (dot)com  GitHub: https://github.com/MarconLP
       Twitter: https://twitter.com/Marcon565
        
       Author : marconlp
       Score  : 117 points
       Date   : 2023-01-06 18:47 UTC (4 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | samsquire wrote:
       | This looks really good. Thank you for your hard work.
       | 
       | I would like this kind of tool to be integrated with a Mozilla
       | Ubiquity style interface or Sublime Text command palette and
       | integrations with Zapier, so we can actually build things with
       | the tool.
        
       | metaketa wrote:
       | Looks very nice! What I have personally always missed everywhere
       | is the Paradigm of seeing a project as a graph. Most pm tools
       | only allow a specific depth for subtasks and often the
       | functionality for subtasks is limited compared to top level
       | tasks. Whereas what I'm looking for is the Lisp/homoiconic
       | variant of project management tools. I want to make a nested list
       | of tasks like you would do in a text file, and then navigate that
       | list with all the views we know and love.
        
       | jemmyw wrote:
       | > Show HN: I spent 2 years building Tablane as a 17-year-old
       | 
       | How did you remain 17 for 2 years?
        
         | lol768 wrote:
         | Birthday on the 29th of Feb?
        
           | marconlp wrote:
           | Actually my birthday is tomorrow
        
         | fancyPantsZero wrote:
         | They must be travelling at over 80% the speed of light
        
         | wiseowise wrote:
         | Beat me to it.
        
       | kevmo314 wrote:
       | Very cool! I love the public roadmap
       | https://app.tablane.net/shared/board/63906741c22c232ed88df79...
        
       | yamasanama wrote:
       | I fully concur with everybody suggesting you to not skip a
       | university education. As a basic example from this project,
       | fundamentals of OT/CRDT which you need to deploy to make colab
       | editing work correctly (you have used that, right?) are so much
       | easier to grok after a bit of theory classes. Your future
       | colleagues will thank you for it.
        
       | marconlp wrote:
       | I've seen a lot of discussion about my choice of looking for a
       | job directly after Highschool.
       | 
       | Reasons against college
       | 
       | - I recently visited a College Conference and wans't really
       | impressed by any of them, mainly because their presented
       | curriculum where basic js, css, html, react, easy leetcode
       | algorithms which I already know
       | 
       | - I don't really happy with my current position in School, where
       | I sit and listen to the teacher talking about a topic for an hour
       | which I could teach myself with a 5 min youtube video
       | 
       | - Additionally my plan was to move to the US where Waterloo
       | University would be 100k a year for non-us-citizen
       | 
       | - I've heard that after a few years of working as a Software
       | Engineer the college degree doesn't matter anymore
       | 
       | - Having an income
       | 
       | - learning from experienced Software Engineers
       | 
       | Reasons for college:
       | 
       | - the life experience
       | 
       | - some people say getting a job without a degree is almost
       | impossible
       | 
       | What do you guys think about this list?
        
         | xupybd wrote:
         | You're probably right that a college is not the fastest or
         | cheapest way for you to learn but the world works in funny
         | ways. You might find a degree opens more doors than it should.
         | 
         | That said there are ways to get those qualifications at your
         | own pace and much cheaper. Find a way to speed run a degree.
         | It'll be worth it.
        
         | Waterluvian wrote:
         | If you choose not to go to college, I encourage you to write a
         | lot. Communication is a thing you practice a lot in college,
         | possibly without even noticing.
        
         | coryrc wrote:
         | > move to the US where Waterloo University would be 100k a year
         | for non-us-citizen
         | 
         | That sounds like a terrible idea, to be fair. (And you don't
         | mean University of Waterloo in Canada?). Isn't University free
         | in Germany?
         | 
         | > mainly because their presented curriculum where basic js,
         | css, html, react, easy leetcode algorithms
         | 
         | Maybe, but are you sure they aren't teaching engineering
         | ethics, digital logic, discrete algebra, calculus, and a lot of
         | other things too?
         | 
         | Additionally, you will never again get the chance to be 18-22
         | and around a whole bunch of 18-22 year-olds again. It will
         | never be easier in your life to make friends. You have your
         | whole life to be programming. Don't make the same mistake I
         | made. Live it up. Study abroad. Go on spring break with
         | friends.
        
         | JanSt wrote:
         | WWU has a pretty math heavy curriculum (although there are now
         | less rigouros math courses for Informatikstudenten) and you
         | will learn a lot of abstract thinking, computational theory,
         | optimizations, operating systems, databases (with theoretical
         | foundations), computer graphics, computer vision, machine
         | learning and you can get a glimpse into things like
         | Medizinische Informatik in seminars.
         | 
         | Take a look at the course list, pick one that sound interesting
         | and just go there for a day or two in a big horsaal, no one
         | will care about you. Vorlesungen are boring but it will give
         | you insights on the topics you will study there.
         | 
         | In most courses no one will care whether you go there or not,
         | just do it at home and quicker.
         | 
         | You won't need all of that but it will give you a strong
         | foundation for whatever the future holds.
         | 
         | If you want to work look for part time positions and study on
         | the side. It's easy because the cost is only EUR600/year and
         | includes public transport.
         | 
         | The degree will help you everywhere: immigration, getting past
         | hr, getting jobs that go beyond web dev etc.
        
       | theodric wrote:
       | What's most impressive is that you managed to remain 17 for two
       | years!
        
       | krat0sprakhar wrote:
       | Excellent work. Committing to working on something for 2 years
       | and shipping is an incredible achievement at any age let alone
       | 17. Keep at it and you'll go places!
       | 
       | Good luck!
        
       | amitprasad wrote:
       | Hey Marcus! Super cool to see another fellow Minecraft-
       | jumpstarted developer. I got into programming way back in 2013
       | with Minecraft mods and then Bukkit/Spigot plugins.
       | 
       | > I decided to look for open Developer positions, to work with a
       | team of experienced developers so I can learn even faster.
       | 
       | Seeing as you're in Europe and not in the U.S. (with exorbitant
       | tuition costs), I would actually recommend against skipping out
       | on College. I can confidently say that while experience in the
       | industry is great (having worked part-time at a startup, as well
       | as various internships during College), I think the knowledge
       | gained from University classes is often underrated.
       | 
       | Not only that, but College is definitely a life experience that I
       | would recommend not to skip lightly.
       | 
       | Regardless, this is super impressive work!
        
         | filoleg wrote:
         | To add to your great points, if OP ever decides to immigrate
         | elsewhere (not even talking about the US specifically, but
         | pretty much anywhere outside of the EU), attempting it without
         | a college degree can range somewhere between extremely
         | difficult and impossible. Yes, even for high-earning fields
         | like software development.
         | 
         | Unless there are strong reasons not to do college, I would
         | recommend to not skip it.
         | 
         | Disclaimer: I am talking about OP's situation specifically. I
         | am not trying to make a general "everyone should go to college
         | unless they have a strong reason not to" statement, because I
         | don't agree with it myself.
        
           | fillskills wrote:
           | An additional tip: College is not too hard, specially in
           | colleges where you can choose to pursue easier subjects or
           | less number of subjects in a semester when needed. This might
           | give OP the flexibility to purse the startup/project in
           | parallel with college if they want.
        
         | z3t4 wrote:
         | All knowelage today can be found on the web. And you will never
         | have any use of 95% of the course. If you get emplyed you will
         | find that you already know more then the people with an
         | engendering degree. But I still recommend getting a engineering
         | degree for two reason 1) those with a degree earns 25% more
         | then you because they can get more job offers 2)
         | university/college is good for your social life.
         | 
         | So if you already have many job offers (1) (you can negotiate a
         | good salary) and already have a GF (2) reason 1 and 2 is
         | already covered and thus you don't need uni/college.
        
         | armchairhacker wrote:
         | Would it be acceptable to do a part-time (i.e. community)
         | college or take college classes with an internship? If not, I
         | strongly recommend look at a college with co-op and internship
         | program.
         | 
         | I agree that the computer _science_ knowledge, even some of the
         | deeply theoretical stuff, is heavily underrated. Classes like
         | OS, networks, programming languages and compilers, and
         | computation theory have taught me stuff I use in actual
         | software development. Plus, learning how to look up stuff and
         | understand research papers and take measurements and form
         | experiments (you will need to read heavy documentation and
         | measure things in industry).
         | 
         | Without knowing the fundamentals of CS like data structures you
         | may miss out some concepts and end up doing things
         | inefficiently (in both development effort and inefficient
         | programs). Webdev alone won't get you that knowledge.
         | 
         | As for the "college experience" personally I disagree. I'm of
         | the camp (as an American) that it's mostly a glorified American
         | thing. As long as you have _some_ friends, who you can find in
         | college or industry or your local town (if you don't move), you
         | are set, and you're not missing much (as having some friends
         | and hanging out basically _is_ the college experience).
         | 
         | But also, as someone who went through college I think it
         | _greatly_ helps to have experience in industry. Because while
         | you miss out on purely industry, you also miss out on purely
         | academia (cue: academics who are wildly out-of-touch, papers on
         | deep theoretical concepts I doubt will have any real-world
         | use). It also really helps with finances (read: not going into
         | college debt) and  "getting your foot in the game" and making
         | connections early is extremely useful as it will let you
         | graduate with experience on your resume and skip entry-level
         | jobs. I think that the best solution is both, hence join an
         | internship-focused college or take college classes and maybe
         | lab work while doing an internship
        
         | FlyingAvatar wrote:
         | As someone who left mid-college to do software development
         | work, I regret not completing a degree of some kind. (I was
         | studying electrical engineering.)
         | 
         | I would say, for me, it actually would have been good to spend
         | a few years working in industry to get a view of what real
         | world programming is like and gain some awareness of what doors
         | might be closed to you without a degree.
         | 
         | In this situation I would recommend being careful to not become
         | dependent on the level of income that most software development
         | provides. If you are cautious with your finances, you could
         | decide to go for the degree with some money saved up as opposed
         | to it feeling like a major financial hurdle to leave your job
         | in order to go to school full time.
        
         | Octabrain wrote:
         | > I can confidently say that while experience in the industry
         | is great (having worked part-time at a startup, as well as
         | various internships during College), I think the knowledge
         | gained from University classes is often underrated.
         | 
         | 100% agree. Great advice. I never went to University, in my
         | case for reasons that I prefer not to mention and it has been a
         | constant source of regret. I wish I had a time machine.
        
       | consp wrote:
       | Nice job!
       | 
       | I stopped reading at "Tablane is a workspace that adapts to your
       | needs. It's as minimal or as powerful as you need it to be."
       | 
       | This tells me nothing and triggers my "do not ever go there scam"
       | sense.
        
       | gremlinsinc wrote:
       | Looks pretty awesome, definitely see this as a nice clickup
       | replacements for small projects where clickup might be a little
       | bloated/overkill.
       | 
       | I really like the nesting, as that's often how my mind works and
       | why I like notion-like things where you can build nested
       | workflows. However, w/ clickup I feel you get nesting but it's
       | often more like hyperlinks so you don't always get to see
       | hierarchy and how things relate, where this you get a more birds-
       | eye view of how everything is linked to each other via the
       | nesting/folder-like structure. Both have their pros and cons,
       | clickup's being it can be a bit more like a wiki meets
       | trello+notion, but again finding things is a bit more chaotic.
        
         | marconlp wrote:
         | Do you mind sharing an example of your hierarchy? I have a
         | similar feeling with the separation of tablane's workspaces, I
         | though about adding a discord-like workspace switcher.
        
       | maille wrote:
       | I'm giving it a try (using the cloud version) and can't find how
       | to assign someone or set a status to a task. Is it limited to the
       | private beta?
        
         | marconlp wrote:
         | You have to add a People Column to the Board in the top right
         | corner, in which you can assign someone.
         | 
         | The private beta is refering to the versions before v0.1, when
         | there wasn't a publicly hosted version.
        
           | maille wrote:
           | Thanks but I have no idea how to do that, maybe I'm not even
           | in the "board view" for starter. Ok, found it, the small +
           | icon. I would suggest to make it more obvious that this icon
           | hides all the nice stuff
        
       | mgaunard wrote:
       | Settings don't seem to work on mobile.
        
         | marconlp wrote:
         | Yes, they are currently not mobile optimized. It's not a high
         | priority because I think doing it once on a Desktop/Laptop is
         | okay for now.
        
       | lkbm wrote:
       | This looks promising.
       | 
       | I immediately went in and created a Workspace and then a Space
       | (which I gave the same name because I was unsure what a Workspace
       | is or a Space is), and then added some tasks with subtasks.
       | 
       | Then I went to "Home" and it told me "No assigned tasks".
       | 
       | Okay...can I assign tasks? I don't see a way.
       | 
       | Looking at the roadmap, I see that "assignee" is a TODO, but does
       | that mean the Home will be blank until that's implementing? I
       | don't know!
       | 
       | Also, when I open a task, the subtask list is titled "Empty". It
       | doesn't matter whether there are subtaks entered--it's titled
       | "Empty". I'm not sure why or if there's a way I can make it say
       | something else--not sure what I'd want it to say.
       | 
       | Overall, this looks good, seems easy to use (in the sense of
       | "typing in tasks and subtasks was quick and easy--surprisingly
       | rare in such apps!) and I love that you're building in public
       | this way. I'm not ready to switch to using it, but in some ways
       | it's better than the competitors. Really, the ease at which I
       | could type in and rearrange tasks+subtasks is better than Notion
       | (the worst!), Emery (no subtasks), Amazing Marvin, or Todoist.
       | Get working "inbox"/"timeline" view and "deadlines" (at a subtask
       | level), and I might be ready to pay you money to use it.
        
         | lol768 wrote:
         | > Okay...can I assign tasks? I don't see a way.
         | 
         | Pick from the Essentials column list and add "People" to the
         | task list. Then pick yourself. It'll show up on the homepage.
        
           | lkbm wrote:
           | Ah, yup, thanks!
           | 
           | As a personal TODO app, I would want things to default-assign
           | to myself, but I realize this is meant more of a
           | collaborative app.
        
         | lkbm wrote:
         | Oh, I think "EMPTY" is the lack of a label? But I can't add
         | labels, I also can't mark things as done.
         | 
         | The screenshots seem more "complete". so either I'm missing
         | something or I just don't have access to a lot of the "beta"
         | features.
        
           | marconlp wrote:
           | You have to add a Status Column. There you will be able to
           | add labels. After that you need to group the tasks by that
           | Status.
        
             | lkbm wrote:
             | Ahh, also lets me assign! Thanks!
        
       | lowercased wrote:
       | Nice job so far!
       | 
       | One thing that would help onboarding, I think, may be an
       | initial/sample/example/default workspace with some illustrative
       | sections and tasks. It's a bit too empty/minimal up front, but I
       | see some potential/promise here for sure.
       | 
       | Again, nice work!
        
       | shoo wrote:
       | > I decided to look for open Developer positions, to work with a
       | team of experienced developers so I can learn even faster.
       | 
       | Good idea -- working in a team that has a few experienced
       | developers provides a great way to rapidly learn - both to
       | improve technical skills but also get experience and start to
       | learn all the other skills required to be useful on real world
       | software projects. A great environment for learning might be one
       | where the team spends all or most of the time working from a
       | central office. It can sometimes also be good to find a team
       | where you're not the only junior developer, and there's a healthy
       | ratio of junior to senior developers.
       | 
       | That said, one potential benefit of college is the opportunity of
       | gaining exposure to topics or fields you might find very
       | interesting, but don't know about yet. But you always have the
       | option of changing your mind after a year or five of working on
       | software projects in industry, and working in industry may also
       | give you an idea of a particular niche you want to specialise in.
       | 
       | Best of luck!
        
       | topicseed wrote:
       | Can't wait for you to be spotted and hired by ClickUp ;-)
        
         | marconlp wrote:
         | I would have already applied at ClickUp if they weren't hiring
         | only 5+ year Experience Software Engineer
        
           | lol768 wrote:
           | If you're good enough (and you are!), sometimes requirements
           | like these aren't as set in stone as they may appear and
           | rules can be bent/positions created.
           | 
           | It'd be worth pinging over an email to someone senior there
           | if you haven't already with a link to your portfolio (and
           | maybe this post) if you're particularly interested.
        
       | sakopov wrote:
       | Congratulations on sticking to it and delivering a useable
       | product after 2 years of work! That's an impressive feat at your
       | age.
        
         | marconlp wrote:
         | Thanks, the main inspiration was to avoid paying 8$/month to a
         | competitor and actually using it myself!
        
       | rglover wrote:
       | Nice work, Marcus. This is really impressive. Dig the polish on
       | everything.
        
       | lol768 wrote:
       | This is super impressive; nice to see folks who've come from a
       | Bukkit plugin development background too :P
       | 
       | Few suggestions:
       | 
       | The description you've given us here on HN is so much better than
       | on your landing page here: https://tablane.net/ The first
       | thoughts I had were: "Okay, Productivity. And it's 'Next
       | Generation'. What does that even mean? The screenshot is pretty
       | but I don't really understand what it's showing". I then read the
       | GitHub description "Tablane is a workspace that adapts to your
       | needs. It's as minimal or as powerful as you need it to be." and
       | ended up even more confused. What is a workspace in this context?
       | It's great it can adapt to my needs, but I don't know what it
       | even does. Once I read the description here on HN, it made a lot
       | more sense. It'd be useful to explain the hierarchy of
       | workspaces/spaces/tasks a bit more.
       | 
       | There are a few dialogs that don't seem to support keyboard
       | controls (like Enter), I've opened a PR for this.
       | 
       | When I try and run it locally to test my PR, it seems to complain
       | with an "AppError: Invalid access token" on the backend. I get a
       | "Something went wrong" error message (and the XHR fails with a
       | CORS error). What am I doing wrong?
        
         | marconlp wrote:
         | > I got that feedback several time already I tried to make it
         | easier to understand with the interactive demo on
         | https://tablane.net
         | 
         | > There are a few dialogs that don't seem to support keyboard
         | controls (like Enter), I've opened a PR for this.
         | 
         | Thanks, I am going to check that!
         | 
         | > When I try and run it locally to test my PR, it seems to
         | complain with an "AppError: Invalid access token" on the
         | backend. I get a "Something went wrong" error message (and the
         | XHR fails with a CORS error). What am I doing wrong?
         | 
         | I forgot to add the .env.example file to the tablane-api repo:
         | https://github.com/Tablane/tablane-api/commit/6c92035505914d...
        
       | agentwiggles wrote:
       | Really nice looking work! How did you build your landing page and
       | your design? One of the major gaps in my skillset is design/css,
       | so I'm always impressed by good looking sites like yours.
        
         | marconlp wrote:
         | I design things by throwing a lot of elements I like from other
         | places together.
         | 
         | Here are some examples: https://imgur.com/a/5EL2LJq
        
           | agentwiggles wrote:
           | That's quite a simple and sensible answer! Nice work. I might
           | need to assemble some reference material for myself like
           | that.
        
       | MrGilbert wrote:
       | Kudos to your platform! Really cool. I'd also like to advice
       | against skipping university. You might aim higher, but having
       | some kind of degree helps opening some doors, especially in
       | Germany. But I also recommend checking out some internship or
       | part-time opportunities. Wish you all of luck!
       | 
       | I'm a C# guy, so I might not be of any help, but I'm a
       | professional developer for 10+ years here in Germany. So If you
       | have any questions, you can find my email in the about page.
        
         | xupybd wrote:
         | * * *
        
       | hejejejj wrote:
       | [flagged]
        
       | shudza wrote:
       | Go to college and have fun. You are too young to waste your best
       | years working.
        
       | JanSt wrote:
       | Any domain you are especially interested to work in? Robotics,
       | finance, media, sports, health?
        
       | vintagedave wrote:
       | This looks really professional, and I'm impressed. I like you can
       | self-host as well; I'm not personally a fan of relying on the
       | cloud or third-party services for things like personal task
       | management (company task/project management is fine), which I
       | think many on HN share. Self-hosting goes a long way to solving
       | that.
       | 
       | How did you build collaborative editing? I know it's a very
       | complex thing to achieve.
       | 
       | It uses the Sustainable Use License. I am not familiar with this
       | though some googling shows several companies using it. Can you
       | share what led you to choose it?
       | 
       | Minor nitpick: your readme says "First, rename .env.example to
       | .env." but I didn't see anything in the readme referring to
       | "env".
        
         | marconlp wrote:
         | > How did you build collaborative editing?
         | 
         | As KRAKRISMOTT said, I am using TipTap with their HocusPocus
         | backend!
         | 
         | > It uses the Sustainable Use License. I am not familiar with
         | this though some googling shows several companies using it. Can
         | you share what led you to choose it?
         | 
         | I mainly choose that one because of the incident with AWS
         | offering ElasticSearch as a Service without their approval
         | 
         | I want something basically Opensource, where Individuals or
         | Companies can use it freely for their own purpose BUT limtit
         | companies from starting a competitor to Tablane Cloud from my
         | own work.
         | 
         | > Minor nitpick: your readme says "First, rename .env.example
         | to .env." but I didn't see anything in the readme referring to
         | "env".
         | 
         | I forgot to add a .env.example file in the tablane-api repo.
         | Going to fix that!
        
         | KRAKRISMOTT wrote:
         | > _How did you build collaborative editing? I know it 's a very
         | complex thing to achieve._
         | 
         | Tiptap is listed as dependency, so it is almost certainly using
         | Y.js as the CRDT provider.
        
       ___________________________________________________________________
       (page generated 2023-01-06 23:00 UTC)