19 votes

Show Tildes: Laid Out - a non-profit, open source self-help web app

7 comments

  1. [3]
    chopin
    Link
    Laid Out is a passion project that I've been working on after work and on the weekends for about the past 5 months. I'm thrilled to finally be able to share it! Website GitHub What is it? It...

    Laid Out is a passion project that I've been working on after work and on the weekends for about the past 5 months. I'm thrilled to finally be able to share it!

    What is it?

    It consists of minimalistic tools that focus on mental health, and is available on desktop and mobile browsers. Account creation is optional and serves the purpose of data synchronization across your devices.

    I don't do any tracking or monetization of any sort.

    How it started

    I had just learned the basics of coding and wanted to build something when I came up with the idea of creating a tool to help manage anxiety a bit better and sharing it with people in hopes of helping those who suffer from anxiety. Even if nobody used it, I would, which allowed me to work on it with minimal expectations and pressure.

    I had many variations of the tool in mind but ended up with one where you write down your worries, cross out the uncontrollable and accept them, and action the rest. The idea is to help lift off some of the mental fog you might have under an anxious state.

    When I was close finishing the implementation of the anxiety tool, I thought it would be too bland to put out there on its own, so I added a gratitude journal and a regular journal.

    I also wanted to add lots of pixel pets with various animations, which I posted a dilemma about here on Tildes. If you're wondering, what ended up happening is I bought Aseprite and a subscription to an AI service that focused on pixel art, came to the realization that it was no good and that I couldn't draw for the life of me, and so paid an artist on Fiverr for a cat and one animation for it. It turned out alright, but for now, I gave up on the idea of having lots of pixel pets.

    Technical stuff

    Feel free to skip this section if the technical side of things don't interest you! I really like reading about the technical details of web apps and I thought some people (especially beginners, like me) might find it interesting, so here goes.

    To reiterate, I started this project with some basic Python knowledge and I gotta say, it has been an absolute journey to get here :D. A journey that frequently involved working on a single, seemingly simple bug for days with no progress; I think part of me became a monk to maintain motivation through said slumps :D.

    I changed technologies many times and generally had little idea what I was doing but ended up with:

    • Django and django-rest-framework backend; the backend and frontend aren't fully decoupled, only three pages (Anxiety, Gratitude, and Journal use Vue.js SFCs)
    • Postgres as the DB
    • Celery worker for tasks and Celery Beat for task scheduling
    • Flower for Celery monitoring/management
    • Redis as a message broker for Celery
    • Tailwind for styling
    • Alpine.js for some light interactivity on the frontend
    • Vite to bundle up Typescript, Tailwind, and Vue SFCs
    • Mailjet for transactional emails
    • S3 for DB backups and later on maybe log backups
    • Gunicorn as the web server
    • Traefik as a reverse proxy
    • Whitenoise to serve static files via Nginx behind Cloudfront

    Everything is dockerized both during development and deployment (cookiecutter-django was really helpful here.) The web app is deployed on a VPS with 2 shared vCPUs and 2 GBs of RAM.

    Final thoughts

    It'd be awesome to see Laid Out slowly grow into a self-help hub maintained by many people.

    I'd also love to receive feedback of any kind, as well as answer any questions you might have!

    Thank you

    7 votes
    1. [2]
      gpl
      Link Parent
      I just have to say, this looks extremely well done especially if you started out with only basic Python knowledge! Congrats on seeing it through to completion. I love this idea and I hope people...

      I just have to say, this looks extremely well done especially if you started out with only basic Python knowledge! Congrats on seeing it through to completion. I love this idea and I hope people use it and get something out of it.

      4 votes
      1. chopin
        Link Parent
        Your comment makes me very happy. Thank you so much!

        Your comment makes me very happy. Thank you so much!

        3 votes
  2. [4]
    elight
    Link
    I'll have to try this running locally. You may even want to place a link to "youfeellikeshit" in the app just for convenience for yourself/others. It's easy to forget and a handy resource.

    I'll have to try this running locally. You may even want to place a link to "youfeellikeshit" in the app just for convenience for yourself/others. It's easy to forget and a handy resource.

    6 votes
    1. eggpl4nt
      Link Parent
      Thank you for sharing this resource! A silly website name, but a really useful tool.

      link to "youfeellikeshit"

      Thank you for sharing this resource! A silly website name, but a really useful tool.

      4 votes
    2. [2]
      chopin
      Link Parent
      Let me know if the local development instructions on GitHub don't work for you. I'll look into youfeellikeshit, thanks!

      Let me know if the local development instructions on GitHub don't work for you. I'll look into youfeellikeshit, thanks!

      3 votes