Hey Muhamed, For web development, you'll have to learn how to write backend APIs and how to build UI for browsers, apps, etc. If you're just starting off with programming, I'd suggest you stick to one language and trying developing everything using it to cut the unnecessary learning overhead. Although Python and JavaScript are very similar for beginners, JavaScript is the only available option for both frontend and backend development for a web application. You can start working with Node.js for your API development and Vanilla JS along with HTML/CSS for UI. You'll only need to learn one language to do all of this. Hope this helps.
Gagan Jakhotiya
I have a very limited but significant use case for spatial index in a routing service. I see these indexes not growing beyond 10,000 geometries for the next 1 year and maybe 100,000 for the next 3 years. The solution needs to be approached from a delivery timeline perspective mostly because the use case also comes with a slightly relaxed compute time SLA and cost optimum implementation PoV.
We have chosen R-Tree based index as a suitable choice for our use case. We are already using Aerospike and MySQL in our stack. MySQL supports R-Tree and has good docs as well. I couldn't find anything specific to R-Tree with Aerospike. Also, generally would like to understand from the performance perspective how these two choices would fare with something like Tile38?
Suggestions beside these are also most welcome.
Strapi is a headless CMS for managing content and creating easily customizable APIs to power applications using that content. Loopback is a framework for building APIs and fully bootstrapped microservices. While Strapi is batteries-included and does solve a lot out-of-the-box (Auth, Permissions, Code Generation, etc.), most of these use cases revolve around content provided on Strapi admin and providing APIs for consuming that content easily. Since your use-case is of a CRM, I would assume that you'd have to write a whole bunch of business logic rather than just collecting content/data via Admin and rendering the same.
I'd suggest thinking along the lines of the below use cases that you may have now or in the future and then finding the right tool for the job.
Users, Roles, Permission (Authorisation and Authentication)
REST and WebSocket scenarios
Multi-tenancy and data sources (Single / Multiple DBs) (Revisit 1st point)
Caching
Async processing (Kafka consumers)
Periodic Activities (Crons)
Scaling strategy in case of heavy load (inter/intra-requests)
Internationalisation
NFRs
Strapi / Contentful would be a no-brainer choice for a frontend-heavy application but use cases like CRM are essentially backend-heavy and are seen as a SAAS product in itself than just a website.
I'd recommend you check out the likes of NestJS / SailsJS once.
Strapi is really nice! I am using it for https://www.web3xplorer.com/ and it was easy to set up. You can host it on Strapi Cloud or yourself (on DigitalOcean for instance)
I'd like to share my experience for a similar use case.
A couple of months back I was in a similar place while facing some similar set of challenges within our SEO and Content Team. We were working with WordPress at that moment and for some parts - we still do. While WordPress is a very fast, intuitive and comprehensive tool to power static pages, it's not ideal for: 1. The content team as it requires some level of technical skills 2. Code reusability perspective - impacts performance in a longer run 3. Performance and user experience can easily go for a toss considering content team may not be diligent with everything outside the scope of the content
While evaluating we were looking at these key criterias: 1. SEO, Performance and UX 2. Ease of use for Content Team, developer independence 3. Learning Curve for devs and more importantly content creators 4. Support for complex design cases 5. Cost
Being part of a small org on a tight budget our natural inclination was for open-source solution, Strapi, and so we gave it a go for a smaller project before jumping the marketing wagon.
Strapi is a great tool, easy to learn and pick up. You get most of the design use cases out of the box baked for you. It's a Node.js service so you'll need to manage the service (meaning you'll have to handle monitoring, logging, cdn, auth, etc) and DB - which requires quiet some dev bandwidth. Now Strapi is still very young in term of DB migrations (not a seamless deployment yet - no schema diffing mechanism), setting up different environments required effort and you can do content modeling only in development environment (the db migrations complexity) - which becomes really critical when you want devs, design and content to collaborate simultaneously and don't want repeated work for modeling. Over a 5-6 weeks of use we realised that more and more dev bandwidth is required to do progressive addition of new content and hence we did another PoC with contentful.
Comparing this with contentful - which is a managed service, comes with inbuilt environment and preview setup, gives on-the-fly content modeling (replacing all the dev bandwidth dependency for managing migrations, cdn, auth, service, etc) gives a huge advantage of speed and developer independence at a very moderate price. Plus, the UI is very intuitive (taking some concepts from Tag Manager).
Few other thing to highlight: - Both Strapi and Contentful have plugins for common tooling. - Both the dashboard supports custom data type and UI extensions. I found Contentful UI extensions much more easier to implement. - Contentful has only US based availablility zone. Simple in-memory caching can be used to improve costing and SLA.
Hope this helps!