Development team

and core authors of the open-source JS Library - Puer.Js

app.js Close
main.com
												1import $from '../puerjs/index.js'
												2
												3$.application(
												4   class App extends $.App {
												5      render() {
												6         return $.div([
												7            $.h1({text : 'Hello, Puer!'}),
												8            $.div([
												9               $.MyButton('my-button', {
												10                 text            : 'Get started',
												11                 location     : 'https://puerjs.com'
												12              }),
												13           ])
mybutton.js
												1import $from '../puerjs/index.js'
												2
												3   export default class MyButton extends $.Component {
												4      constructor(... args)
												5         super(... args)
												6         this.props.require('text')
												7         this.props.require('location')
												8      }
												9      onClick(e) {
												10        window.location.href = this.props.location
												11     }
												12     render() {
												13        return $.div([
Get started
  • LG
  • Google
  • Yahoo
  • HP
  • Mozilla

Our employees have worked with these companies

What we offer

Enterprise quality, affordable, complete web solutions that leverage pre-built architecture and ready professional team.

  • Backend

    Backend Stack

    • PostgreSQL
    • Redis message broker
    • Python, SQLAlchemy, Pydantic
    • FastAPI with support for REST and Socket APIs
    • Kubernetes
  • Frontend

    Frontend Stack

    • PuerJS library
    • SPA architecture
    • Clear and scalable routing
    • JWT Authentication

All this is already done for you.

Feature
Puer.js
React
Angular
Vue
Two-way communication with browser hash
Limited
Built-in hash query parsing and managment
Browser hash as component selector
Simultaneous multiple routes handling
Limited
Decoupled routing and rendering
Waiting queue for navigation commands

Who is Puer.Software

  • Experience

    We are a group of seasoned software engineers with 27 years of experience in Silicon Valley.
    This includes a wide variety of companies from startups to large corporations like LG, Google, Yahoo, HP and Mozilla.

    We have done so many web projects, that commonalities between them became obvious. At some point, we have decided to create a common template for Back End as well as Front End.

  • Puer project

    This is how Puer Project Groundwork was born.
    It has a microservice-driven back end where you can add highly extensible apps that also share common functionality like socket communication and asynchronous databases (Postgres with SQLAlchemy). Our back end is written on top of FastAPI – the fastest and cleanest python framework on the Web.+

    On the front end we employ PuerJS – a component driven javascript framework. Core developers of this library are also co-founders of Puer.Software, this guarantees that inner works of our code will never be dependent on third party teams.

  • Prospects

    This comprises a valuable product that can bootstrap a startup or lay a quality groundwork architecture for web projects of any size.

Team

Our well-tuned team of professionals has proven itself through many software challenges.

  • Project manager

    A job of a project manager to work with the product owner (you) to help you define scope of the project. Budget, timeline, technologies necessary. Then, in communication with the technical team, the project is broken down into stages and tasks. Each task is evaluated in terms of time and resources necessary. Result is communicated back to the product owner.Project manager tracks all tasks and progress in Jira and makes sure that tasks are done on time.

  • Technical Lead

    Tech lead participates in meetings with the product owner team (along with project manager) to provide technical aspects of the communication. He helps translate business objectives into concrete development tasks and orchestrates the technical team.

  • Front End Developer

    Front end developer works with presentation part of the code: javascript, css, html. He is an expert in the PuerJS library that is used as a front end framework. He works closely with Back End developers and Designers to create interactive browser experiences for your users.

  • Back End Developer

    Back end engineers implement business logic and API for front-end consumption. He creates data flow from API to database and back. He works closely with front-end engineers to develop an API that provides communication between front-end and back-end.

  • Designer

    Designer provides UX and UI mock-ups for front-end developers to implement. Designer participates in meetings with the product owner team to provide expertise on the user experience side of the question. He creates frames and diagrams depicting all stages of user interaction with your application to achieve both ease-of-use and efficiency in reaching business goals. Later, these frames are turned into designs with colors, fonts and graphics to be used as a guideline for front-end implementation.

  • CSS Developer / Stylist

    Job of a style developer is to “dress up” the front-end functionality according to mock-ups of the designer. He translates colors, fonts and graphics into style code of your app.

  • Business Analytic / Marketer

    Business analytic works with the product owner team and designers to make sure that all business objectives are met. He provides consulting on SEO optimisation to drive organic traffic from search engines like Google. He provides expertise on how to conduct AB tests, strategies of integration with social network platforms. Creates advertising campaigns, measures site performance to pinpoint bottlenecks and provide ways to optimize them.

  • DevOps Engineer

    DevOps engineer conducts deployment of the code to the production and staging servers. He implements deploy–time processes and code checks to host the project in Kubernetes environment in the most efficient way.

L e g e n d

Legend

As with many software projects, we owe a nod to caffeine. While collaborating online and hunting for a solution, we sifted through numerous JavaScript libraries, yet none made us quite happy. Taking a break, we brewed some tea and, after a 10-minute pause, we decided to develop our own solution. During this creative breather, we discovered, to our surprise, that we had both chosen the same type of tea—a rich, dark pu’er. In our team, there's no question that this particular brew offers the best boost for coding and other creative endeavors. Thus, it not only inspired our library's name but also our company's. And if you ever wish to thank us, you now know our preferred.webpt

Why Puer.Software

Save time

Ready-to-use clean code architecture. This eliminates unnecessary research, trials and errors that have been done for you, so that you don’t have to. This potentially saves months of refactoring iterations and painful decision making process.

Save more time

Common startup plague is not having enough resources in the beginning to lay a quality architectural groundwork. Initial stages of code are usually done by junior developers that do not have enough foresight into the life of the project. As a result - code has to be re-done at some point when the project starts to grow. Virtually every startup that we’ve worked with had to go through this.

Having grown with Web since its inception we’ve accumulated expertise necessary to call our architecture solid from many angles: security, performance and ease of development.

By using Puer Groundwork you completely eliminate this time loop.

Save even more time

If potentially, you have other developers work on our code, they will be pleased by clarity and good enterprise conventions used in our groundwork project. Happy and motivated engineers always translate into effective development. Every code reading is shorter, every code addition is faster. Not to mention, that you do not need to go through the pain and uncertainty of hiring all team members separately – we have done this for you already!

Save money

Internal resource management and sharing inside our team provides for minimal spendings on your side. This is a considerable gap if you calculate what you’d spend if hiring the development team members by yourself. Strategic positioning of our team members and telecommute policies allow our professionals to save money on their resources and we pass these savings to you.

The cherry on the cake

If that was not enough, we provide you with direct support. This is something that is hardly ever available in the software world – access to our core development team. You don’t get this with industry giants like React, Vue or Angular. At best you get support from a team who learned the library from online tutorials. In our case – you get support from those, who actually created it, and knows the best practices and reasons for them.

Finding the right team is tough, but we’ve already assembled the experts you need. Skip the hassle and ensure your project’s success—request a quote today!

Terminal

~/PuerSoftware/groundwork gir:(master)±3

poetry run uvicorn src.main:app

INFO: Started server process [49808] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) INFO: 127.0.0.1:56154 - "GET / HTTP/1.1" 404 Not Found INFO: 127.0.0.1:56154 - "GET /favicon.ico HTTP/1.1" 404 Not Found INFO: 127.0.0.1:56154 - "GET /docs HTTP/1.1" 200 OK INFO: 127.0.0.1:56154 - "GET /openapi.json HTTP/1.1" 200 OK INFO sqlalchemy.engine.Engine select pg_catalog.version() INFO sqlalchemy.engine.Engine [raw sql] () INFO sqlalchemy.engine.Engine select current_schema() INFO sqlalchemy.engine.Engine [raw sql] () INFO sqlalchemy.engine.Engine show standard_conforming_strings INFO sqlalchemy.engine.Engine [raw sql] () INFO sqlalchemy.engine.Engine BEGIN (implicit) INFO sqlalchemy.engine.Engine SELECT categories.id, categories.name, categories.created_at, categories.updated_at FROM categories FROM categories INFO sqlalchemy.engine.Engine [generated in 0.00020s] () INFO sqlalchemy.engine.Engine COMMIT INFO: 127.0.0.1:56164 - "GET /category/list HTTP/1.1" 200 OK INFO sqlalchemy.engine.Engine BEGIN (implicit) INFO sqlalchemy.engine.Engine SELECT products.id, products.category_id, products.subcategory_id, products.name, products.discount_pct, products.price, products. total_count, products.reserved_count, products.created_at, products.updated_at FROM products WHERE products.total_count > products.reserved_count INFO sqlalchemy.engine.Engine [generated in 0.00014s] () INFO sqlalchemy.engine.Engine COMMIT INFO: 127.0.0.1:36394 - "GET /product/list HTTP/1.1" 200 OK

Let's begin?

All together, our team works for you as a well-oiled machine. We make sure that your product is in good hands and that you are in the loop with the development progress. That no time is wasted and that minimal resources are spent.