Show HN: I made my own no-code platform
Hi everyone, OP here, maker of Simitless (mostly a passive reader on HN so far)<p><i>PURPOSE</i>: In short, I’ve made a no-code platform for building management apps, information systems, work databases, etc... I am gearing it mostly towards independent workers and small companies. Yes, yet another no-code tool !<p><i>ORIGIN</i>: I had the idea for this architecture of no-code app back in 2007. I got to  the actual coding of the platform in 2014,after losing my job. After 7 years of development, mostly on my own, the Simitless project is finally where I wanted it to be. Of course, as with everything, there are still some bits that are rough around the edges, but it&#x27;s working (yay!) and I am using it daily for both my work and personal life. What I’ve learned about myself, working on this project, is that marketing is really not my strong suit, unfortunately, so I only have a couple of paying users (and yes, most of them are from my family). Most non-tech users seem to find no-code tools too complex, even with a detailed, working app model and a user-manual-blog-post...<p><i>TECH STACK</i>: The tech stack is javascript-based, on a NodeJS server, using the Meteor framework, with a lot of custom code. Over the years, as packages got abandoned or my use case changed, I internalized and re-developed most of it for full control over the stack (this allowed login-free guest accounts, for example). I am still using Blaze, as it was the main templating package for Meteor when I started, and it has worked so far and allowed for faster coding and not having to re-do the project in Vue or React. The back end integrates a MongoDB instance as it allows for flexibility in the schema. Individual collections are created on-the-fly for data to enable some isolation between apps content. Indexes are created automatically when the schema changes. Oplog is used by Meteor to enable data reactivity. This makes the whole platform a real-time collaboration tool.<p><i>TECH USED</i>: There are 151k lines of code in the project, 3.1 million lines of code if you include node_modules :-D. UI is shaped by Bootstrap, calendar UI is through FullCalendar, Zxing for QR codes, Stripe for payment handling, nodemailer for email sending, Papaparse for import&#x2F;export, TinyMCE for rich text, Polyglot for i18n, D3 for graphs. Geographical data is provided by OpenStreetMap, using Thunderforest for distribution and OpenCage Geocoder for search. Statistics are processed using Matomo (self-hosted) and for now I am still using Hotjar to learn more about usage and how users are getting lost, but with as-strict-as-i-could-make-it respect of the no-track features and other blockers. The actual app data is also always hidden from any statistics and tracking snapshots. Unless you fully disable js, the platform should still work with any blockers, I just won&#x27;t get the usage stats. I also use Sentry to get bug alerts. Tawk.to is used for user assistance, but as I am alone working on it, I limited it to some areas of the platform for now, and I&#x27;m not always connected to the chat client.<p><i>HOSTING</i>: I am hosting everything by myself on a couple of bare-bones VPS servers (minimizes costs, mostly self-funded). Only file storage is done externally using AWS S3 as it was flexible and affordable for the small volumes so far. Within other services, the servers run nginx for serving content, pm2 for stability, ufw and fail2ban with custom rules for security, logwatch and netdata for monitoring, postfix, spamassasin, spamc, amavis and clamav for emails, let&#x27;s encrypt for SSL, cloudflare for CDN. Most of the companion sites to the project (blog, about, contact) are generated using Hugo (content actually gets written on a Simitless app and exported by a “transformation model” feature of the platform). Older sites (FAQs) are still using Wordpress. For backups, on top of the datacenter daily VPS backup, I have a Raspberry Pi setup at home, behind a firewall, and it uses rsnapshots to save the database exports and the file system configurations every 4 hours. The system keeps multiple versions going back a few months.<p><i>FEATURES</i>: The actual features include custom data types that can be added as the user wants and include, tables, lists, cards, galleries, calendar, agenda, tree view, kanban view, geographical map, file storage, text, rich text, number, tags, barcodes, rating, vote, email, color, phone number, parcel tracking, users, value selection, timezone, auto-increment alphanumerical field, date, time, duration, files, switches and checkboxes and also link to other data types to build more complex apps. Objects&#x2F;tables can be nested in other tables as well, creating a &quot;tree of data structure&quot;. There are formulas to calculate everything that can be and plenty of display and data-quality options (read only, hidden, direct edit in table, data history, required value, unique value). You can even inject custom CSS (breaking the no-code concept here...). Access rights are handled with fine granularity, on each data type (tables, columns) and there is an invitation system to ask someone to open an account and reclaim &quot;access rights&quot;. Apps can also be open so that you don&#x27;t need to invite users individually. Open apps can be “secret-sentence” protected and can optionally require a name and contact details. I also experimented with graphs, dashboards, app access resale (including billing and platform fee), and an internal workflow system with triggers and actions, however these are not well-completed and experimental, so I disabled them for now unless you ask me to activate them on a specific app (but they will most likely break things as they are unmaintained for now).<p><i>TRYING IT</i>: If you have a moment, it&#x27;s free to try and play with, no signup required, if cookies are enabled in your browser, your identification and apps survive for 2 days without access. After that, your work and guest account is cleaned up unless you register an account with an email address. Any feedback welcome !